{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Pipeline for the anomaly detection on the SKAB using Feed Forward Autoencoder"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# libraries importing\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "# additional modules\n",
    "import sys\n",
    "sys.path.append('../utils')\n",
    "from evaluating import evaluating_change_point"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Data loading"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# benchmark files checking\n",
    "all_files=[]\n",
    "import os\n",
    "for root, dirs, files in os.walk(\"../data/\"):\n",
    "    for file in files:\n",
    "        if file.endswith(\".csv\"):\n",
    "             all_files.append(os.path.join(root, file))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# datasets with anomalies loading\n",
    "list_of_df = [pd.read_csv(file, \n",
    "                          sep=';', \n",
    "                          index_col='datetime', \n",
    "                          parse_dates=True) for file in all_files if 'anomaly-free' not in file]\n",
    "# anomaly-free df loading\n",
    "anomaly_free_df = pd.read_csv([file for file in all_files if 'anomaly-free' in file][0], \n",
    "                            sep=';', \n",
    "                            index_col='datetime', \n",
    "                            parse_dates=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Data description and visualization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "A number of datasets in the SkAB v1.0: 34\n",
      "\n",
      "Shape of the random dataset: (1154, 10)\n",
      "\n",
      "A number of changepoints in the SkAB v1.0: 130\n",
      "\n",
      "A number of outliers in the SkAB v1.0: 13241\n",
      "\n",
      "Head of the random dataset:\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Accelerometer1RMS</th>\n",
       "      <th>Accelerometer2RMS</th>\n",
       "      <th>Current</th>\n",
       "      <th>Pressure</th>\n",
       "      <th>Temperature</th>\n",
       "      <th>Thermocouple</th>\n",
       "      <th>Voltage</th>\n",
       "      <th>Volume Flow RateRMS</th>\n",
       "      <th>anomaly</th>\n",
       "      <th>changepoint</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2020-03-09 12:14:36</th>\n",
       "      <td>0.027429</td>\n",
       "      <td>0.040353</td>\n",
       "      <td>0.770310</td>\n",
       "      <td>0.382638</td>\n",
       "      <td>71.2129</td>\n",
       "      <td>25.0827</td>\n",
       "      <td>219.789</td>\n",
       "      <td>32.0000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-09 12:14:37</th>\n",
       "      <td>0.027269</td>\n",
       "      <td>0.040226</td>\n",
       "      <td>1.096960</td>\n",
       "      <td>0.710565</td>\n",
       "      <td>71.4284</td>\n",
       "      <td>25.0863</td>\n",
       "      <td>233.117</td>\n",
       "      <td>32.0104</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-09 12:14:38</th>\n",
       "      <td>0.027040</td>\n",
       "      <td>0.039773</td>\n",
       "      <td>1.140150</td>\n",
       "      <td>0.054711</td>\n",
       "      <td>71.3468</td>\n",
       "      <td>25.0874</td>\n",
       "      <td>234.745</td>\n",
       "      <td>32.0000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-09 12:14:39</th>\n",
       "      <td>0.027563</td>\n",
       "      <td>0.040313</td>\n",
       "      <td>1.108680</td>\n",
       "      <td>-0.273216</td>\n",
       "      <td>71.3258</td>\n",
       "      <td>25.0897</td>\n",
       "      <td>205.254</td>\n",
       "      <td>32.0104</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-09 12:14:41</th>\n",
       "      <td>0.026570</td>\n",
       "      <td>0.039566</td>\n",
       "      <td>0.704404</td>\n",
       "      <td>0.382638</td>\n",
       "      <td>71.2725</td>\n",
       "      <td>25.0831</td>\n",
       "      <td>212.095</td>\n",
       "      <td>33.0000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     Accelerometer1RMS  Accelerometer2RMS   Current  Pressure  \\\n",
       "datetime                                                                        \n",
       "2020-03-09 12:14:36           0.027429           0.040353  0.770310  0.382638   \n",
       "2020-03-09 12:14:37           0.027269           0.040226  1.096960  0.710565   \n",
       "2020-03-09 12:14:38           0.027040           0.039773  1.140150  0.054711   \n",
       "2020-03-09 12:14:39           0.027563           0.040313  1.108680 -0.273216   \n",
       "2020-03-09 12:14:41           0.026570           0.039566  0.704404  0.382638   \n",
       "\n",
       "                     Temperature  Thermocouple  Voltage  Volume Flow RateRMS  \\\n",
       "datetime                                                                       \n",
       "2020-03-09 12:14:36      71.2129       25.0827  219.789              32.0000   \n",
       "2020-03-09 12:14:37      71.4284       25.0863  233.117              32.0104   \n",
       "2020-03-09 12:14:38      71.3468       25.0874  234.745              32.0000   \n",
       "2020-03-09 12:14:39      71.3258       25.0897  205.254              32.0104   \n",
       "2020-03-09 12:14:41      71.2725       25.0831  212.095              33.0000   \n",
       "\n",
       "                     anomaly  changepoint  \n",
       "datetime                                   \n",
       "2020-03-09 12:14:36      0.0          0.0  \n",
       "2020-03-09 12:14:37      0.0          0.0  \n",
       "2020-03-09 12:14:38      0.0          0.0  \n",
       "2020-03-09 12:14:39      0.0          0.0  \n",
       "2020-03-09 12:14:41      0.0          0.0  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# dataset characteristics printing\n",
    "print(f'A number of datasets in the SkAB v1.0: {len(list_of_df)}\\n')\n",
    "print(f'Shape of the random dataset: {list_of_df[0].shape}\\n')\n",
    "n_cp = sum([len(df[df.changepoint==1.]) for df in list_of_df])\n",
    "n_outlier = sum([len(df[df.anomaly==1.]) for df in list_of_df])\n",
    "print(f'A number of changepoints in the SkAB v1.0: {n_cp}\\n')\n",
    "print(f'A number of outliers in the SkAB v1.0: {n_outlier}\\n')\n",
    "print(f'Head of the random dataset:')\n",
    "display(list_of_df[0].head())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# random dataset visualizing\n",
    "list_of_df[0].plot(figsize=(12,6))\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Value')\n",
    "plt.title('Signals')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsIAAADVCAYAAABdXpbTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAAAjMklEQVR4nO3dfbxVZZnw8d/FAUGFAVOsSUSwMQXkRT0q2ZSkjdqLb5OZ5mOhKWNP2mSNZdlY+TTllE2lNiaOSs34mi9FiqMVkkORgYYoaEqBijKIpKgZCXo9f+wNHQ5vB9h7r7P3+n0/Hz7stfZ99ro4XGfva13nXveKzESSJEkqmx5FByBJkiQVwUJYkiRJpWQhLEmSpFKyEJYkSVIpWQhLkiSplCyEJUmSVEo9izrwTjvtlEOGDCnq8JIkSSqJ++6779nMHNh5f2GF8JAhQ5g1a1ZRh5ckSVJJRMTj69vv1AhJkiSV0iYL4Yi4KiKeiYiHNvB8RMTFETE/IuZExL61D1OSJEmqra50hCcBR2zk+XcBe1T/TAAu2/qwJEmSpPra5BzhzLwnIoZsZMjRwPczM4FfRcSAiPjrzFxcqyAlSZCZvLBiVdFhSC2lT68e9O7ZttWvs3LlShYtWsSKFStqEJW2VJ8+fRg0aBC9evXq0vhaXCy3C/Bkh+1F1X0WwpJUQ/MvPZY9lt3NkBXXNvS4g2Ip03v/I//wytnc+dr+DT22yuG3vT/ML14bwakrP93wYy/s80FW7XUUPU/4z616nUWLFtGvXz+GDBlCRNQoOm2OzGTZsmUsWrSIoUOHdulrGrpqRERMoDJ9gsGDBzfy0JLU9PZYdjcA//ze4Q097pAlP4UH4dxd5nDA6A839Ngqh94/XckhbbP558Mbm9u/eeI5eBR6PjJ5q19rxYoVFsEFiwh23HFHli5d2uWvqUUh/BSwa4ftQdV968jMicBEgPb29qzBsSWpdD7yt13rdNTMvJ3hQRi603aNP7bK4aeVvxqdXzfMbINHa/d6FsHF29z/g1osnzYZ+FB19YixwHLnB0uSpO4usHCth3HjxjXNvSI22RGOiOuAccBOEbEI+ALQCyAzvwtMAd4NzAdeBk6pV7CSJEk1Yx1cepvsCGfmiZn515nZKzMHZeaVmfndahFMVnwsM9+UmSMzszlOASRJUqm1Yh18zDHHsN9++zFixAgmTpwIQN++fTnvvPMYPXo0Y8eOZcmSJQAsXLiQQw45hFGjRnHooYfyxBNPADB+/Hg++tGPMnbsWHbffXemTZvGqaeeyrBhwxg/fvyaY330ox+lvb2dESNG8IUvfGGdWK666io+8YlPrNm+4oorOPvss+v3j98C3llOkiSVUivO6b3qqqu47777mDVrFhdffDHLli3jj3/8I2PHjuWBBx7g7W9/O1dccQUAZ511Fh/+8IeZM2cOJ510Eh//+MfXvM5zzz3HjBkz+OY3v8lRRx3F2Wefzdy5c3nwwQeZPXs2AP/yL//CrFmzmDNnDj//+c+ZM2fOWrEcf/zx/PjHP2blypUAXH311Zx66qmN+UZ0UUNXjZAkSeou6lUGf+nHc5n39As1fc3hb/wrvnDkiE2Ou/jii7n11lsBePLJJ3nsscfYZptteO973wvAfvvtx09+8hMAZsyYwS233ALAySefzKc//Zfl64488kgigpEjR/L617+ekSNHAjBixAgWLlzImDFjuPHGG5k4cSKrVq1i8eLFzJs3j1GjRq15jb59+3LIIYdw2223MWzYMFauXLnmdboLC2FJklRKrdYQnjZtGj/96U+ZMWMG2223HePGjWPFihX06tVrTfe7ra2NVas2fWOe3r17A9CjR481j1dvr1q1igULFnDRRRcxc+ZMdthhB8aPH7/em4mcdtppfOUrX2GvvfbilFO632VkFsKSJKmU6lUId6VzWw/Lly9nhx12YLvttuORRx7hV7/61UbHH3TQQVx//fWcfPLJXHPNNbztbW/r8rFeeOEFtt9+e/r378+SJUu44447GDdu3DrjDjzwQJ588knuv//+daZOdAcWwpIkqZRabfm0I444gu9+97sMGzaMPffck7Fjx250/CWXXMIpp5zC17/+dQYOHMjVV1/d5WONHj2affbZh7322otdd92Vt771rRsce/zxxzN79mx22GGHLr9+o1gIS5KkUmq1qRG9e/fmjjvuWGf/Sy+9tObxcccdx3HHHQfAbrvtxtSpU9cZP2nSpDWPhwwZwkMPPbTe5zo+7mjatGlrbU+fPr3brRaxmqtGSJIkqeaef/553vzmN7Ptttty6KGHFh3OetkRliRJpdSKy6d1JwMGDODRR2t4D+s6sCMsSZJKyTJYFsKSJKmUbAjLQliSJJVSq60aoc1nISxJkkrJjrAshCVJUimVoQ4eP348N910U9FhdNm73/1unn/++Y2OmTRpEk8//XRNjmchLEmSSsmOcPczZcoUBgwYsNExFsKSJElbrfUq4e9///uMGjWK0aNHc/LJJwNwzz33cNBBB7H77ruv6Q6/9NJLHHrooey7776MHDmSH/3oRwAsXLiQYcOGcfrppzNixAgOO+ww/vSnPwEwc+ZMRo0axZgxYzjnnHPYe++9AXj11Vc555xz2H///Rk1ahSXX345ULmxxtvf/nbe8573sOeee3LGGWfw2muvAXDdddcxcuRI9t57bz7zmc+siX/IkCE8++yzG4zjpptuYtasWZx00kmMGTNmTWxbykJYkiSVUqt1hOfOncuXv/xlpk6dygMPPMC3v/1tABYvXsz06dO57bbbOPfccwHo06cPt956K/fffz933303n/rUp8hMAB577DE+9rGPMXfuXAYMGMDNN98MwCmnnMLll1/O7NmzaWtrW3PcK6+8kv79+zNz5kxmzpzJFVdcwYIFCwD49a9/zSWXXMK8efP43e9+xy233MLTTz/NZz7zGaZOncrs2bOZOXMmP/zhD9f596wvjuOOO4729nauueYaZs+ezbbbbrtV3zNvqCFJklRLd5wL//tgbV/zDSPhXRdudMjUqVN5//vfz0477QTA6173OgCOOeYYevTowfDhw1myZAkAmcnnPvc57rnnHnr06MFTTz215rmhQ4cyZswYAPbbbz8WLlzI888/z4svvshb3vIWAD74wQ9y2223AXDXXXcxZ86cNd3m5cuX89hjj7HNNttwwAEHsPvuuwNw4oknMn36dHr16sW4ceMYOHAgACeddBL33HMPxxxzzFr/nvXFUWsWwpIkqZRarCG8Qb17917zeHXX95prrmHp0qXcd9999OrViyFDhrBixYp1xre1tW1y+kFmcskll3D44YevtX/atGnr3L1vc+7mt7lxbIkuFcIRcQTwbaAN+I/MvLDT84OB7wEDqmPOzcwptQ1VkiSpdup2i+VNdG7r5ZBDDuHYY4/lk5/8JDvuuCN/+MMfNjh2+fLl7LzzzvTq1Yu7776bxx9/fKOvPWDAAPr168e9997LgQceyPXXX7/mucMPP5zLLruMQw45hF69evHoo4+yyy67AJWpEQsWLGC33XbjhhtuYMKECRxwwAF8/OMf59lnn2WHHXbguuuu46yz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\n",
      "text/plain": [
       "<Figure size 864x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plotting the labels both for outlier and changepoint detection problems\n",
    "list_of_df[0].anomaly.plot(figsize=(12,3))\n",
    "list_of_df[0].changepoint.plot()\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Method applying"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from tensorflow.keras.layers import Input, Dense, BatchNormalization, Activation, Dropout, TimeDistributed\n",
    "from tensorflow.keras.models import Model, Sequential\n",
    "from tensorflow.keras.optimizers import Adam\n",
    "from tensorflow.keras.callbacks import EarlyStopping\n",
    "from sklearn.metrics import mean_absolute_error, mean_squared_error\n",
    "import scipy\n",
    "from scipy.signal import medfilt\n",
    "from sklearn import decomposition\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "from itertools import product"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Function for repeatability\n",
    "def Random(seed_value):\n",
    "    # 1. Set `PYTHONHASHSEED` environment variable at a fixed value\n",
    "    import os\n",
    "    os.environ['PYTHONHASHSEED']=str(seed_value)\n",
    "\n",
    "    # 2. Set `python` built-in pseudo-random generator at a fixed value\n",
    "    import random\n",
    "    random.seed(seed_value)\n",
    "\n",
    "    # 3. Set `numpy` pseudo-random generator at a fixed value\n",
    "    import numpy as np\n",
    "    np.random.seed(seed_value)\n",
    "\n",
    "    # 4. Set `tensorflow` pseudo-random generator at a fixed value\n",
    "    import tensorflow as tf\n",
    "    tf.random.set_seed(seed_value)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "def arch(param, data):\n",
    "    Random(0)\n",
    "    input_dots = Input((8,))\n",
    "\n",
    "    x = Dense(param[0])(input_dots)\n",
    "    x = BatchNormalization()(x)\n",
    "    x = Activation('elu')(x)\n",
    "\n",
    "    x = Dense(param[1])(x)\n",
    "    x = BatchNormalization()(x)\n",
    "    x = Activation('relu')(x)\n",
    "\n",
    "    bottleneck = Dense(param[2], activation='linear')(x)\n",
    "\n",
    "    x = Dense(param[1])(bottleneck)\n",
    "    x = BatchNormalization()(x)\n",
    "    x = Activation('relu')(x)\n",
    "\n",
    "    x = Dense(param[0])(x)\n",
    "    x = BatchNormalization()(x)\n",
    "    x = Activation('relu')(x)\n",
    "\n",
    "    out = Dense(8, activation='linear')(x)\n",
    "\n",
    "    model = Model(input_dots, out)\n",
    "    model.compile(optimizer=Adam(param[3]), loss='mae', metrics=[\"mse\"])\n",
    "    \n",
    "    early_stopping = EarlyStopping(patience=3, verbose=0)\n",
    "    model.fit(data, data,\n",
    "                validation_split=0.2,\n",
    "                epochs=40,\n",
    "                batch_size=param[4],\n",
    "                verbose=0,\n",
    "                shuffle=True,\n",
    "                callbacks=[early_stopping]\n",
    "               )\n",
    "    return model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Grid search for hyperparameters selection"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# StSc = StandardScaler()\n",
    "\n",
    "# # scaler fitting\n",
    "# StSc.fit(X_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# n1=[6, 5]\n",
    "# n2=[4, 3]\n",
    "# n3=[2, 1]\n",
    "# lr=[0.01, 0.005, 0.001]\n",
    "# batch_size=[32, 64, 128]\n",
    "\n",
    "# parameters = product(n1, n2, n3, lr, batch_size)\n",
    "# parameters_list = list(parameters)\n",
    "# print(f'Total number of parameter combinations: {len(parameters_list)}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# pd.DataFrame(parameters_list, columns=['neurons 1st layer',\n",
    "#                                       'neurons 2nd layer',\n",
    "#                                       'neurons 3rd layer',\n",
    "#                                       'learning rate',\n",
    "#                                       'batch size'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# errors = []\n",
    "# for params in parameters_list:\n",
    "    \n",
    "#     model = arch(params, StSc.transform(X_train))\n",
    "#     train_pred = model.predict(StSc.transform(X_train), batch_size=params[4])\n",
    "#     val_pred = model.predict(StSc.transform(X_val), batch_size=params[4])\n",
    "    \n",
    "#     train_error = mean_absolute_error(StSc.transform(X_train), train_pred)\n",
    "#     val_error = mean_absolute_error(StSc.transform(X_val), val_pred)\n",
    "    \n",
    "#     errors.append(list(params)+[train_error, val_error])\n",
    "    \n",
    "# df_errors = pd.DataFrame(errors,\n",
    "#                          columns=['neurons 1st layer', \n",
    "#                                   'neurons 2nd layer', \n",
    "#                                   'neurons 3rd layer', \n",
    "#                                   'learning rate', \n",
    "#                                   'batch size', \n",
    "#                                   'mae train', \n",
    "#                                   'mae val'])\n",
    "# df_errors.sort_values('mae val').head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# best_params = parameters_list[df_errors.sort_values('mae val').index[0]]\n",
    "\n",
    "# model = arch(best_params, StSc.transform(X_train))\n",
    "# model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# val_residuals = StSc.transform(X_val) - model.predict(StSc.transform(X_val))\n",
    "# train_residuals = StSc.transform(X_train) - model.predict(StSc.transform(X_train))\n",
    "\n",
    "# UCL = abs(pd.DataFrame(val_residuals)).sum(axis=1).quantile(0.90)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Training in the beginning of each dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "# hyperparameters selection\n",
    "BEST_PARAMS = [5, 4, 2, 0.005, 32]\n",
    "Q = 0.99 # quantile for upper control limit (UCL) selection"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# inference\n",
    "predicted_outlier, predicted_cp = [], []\n",
    "for df in list_of_df:\n",
    "    X_train = df[:400].drop(['anomaly', 'changepoint'], axis=1)\n",
    "    \n",
    "    # scaler init and fitting\n",
    "    StSc = StandardScaler()\n",
    "    StSc.fit(X_train)\n",
    "    \n",
    "    # model defining and fitting\n",
    "    model = arch(BEST_PARAMS, StSc.transform(X_train))\n",
    "    \n",
    "    # results predicting\n",
    "    residuals = pd.DataFrame(StSc.transform(X_train) - model.predict(StSc.transform(X_train))).abs().sum(axis=1)\n",
    "    UCL = residuals.quantile(Q)\n",
    "    \n",
    "    df_sc = StSc.transform(df.drop(['anomaly','changepoint'], axis=1))\n",
    "    ae_residuals = df_sc - model.predict(df_sc)\n",
    "    ae = pd.DataFrame(ae_residuals).abs().sum(axis=1)\n",
    "    \n",
    "    prediction = pd.Series((ae > 3/2*UCL).astype(int).values, \n",
    "                                index=df.index).fillna(0)\n",
    "    \n",
    "    # predicted outliers saving\n",
    "    predicted_outlier.append(prediction)\n",
    "    \n",
    "    # predicted CPs saving\n",
    "    prediction_cp = abs(prediction.diff())\n",
    "    prediction_cp[0] = prediction[0]\n",
    "    predicted_cp.append(prediction_cp)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsIAAADVCAYAAABdXpbTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAAApwklEQVR4nO3de5wU9ZX38c9hhosIIiKaKChEERAQBFZRYmQhGlwjXuNl1Q1en2jE1c1q3CdZk7jPJsaYmHiJBldlYySuGn0kRqOrSIwRs4yIqAiKijJoUAmiiFxm5uwfVTP0DDNMTU91V1fV9/168Zq+/LrqTM2ve84cTv3K3B0RERERkbzpknQAIiIiIiJJUCIsIiIiIrmkRFhEREREckmJsIiIiIjkkhJhEREREcklJcIiIiIikkvVSe1411139UGDBiW1exERERHJieeee+4Dd+/f8vHEEuFBgwZRU1OT1O5FREREJCfM7K3WHldrhIiIiIjkUruJsJndbmbvmdlLbTxvZna9mS03s8VmNjb+MEVERERE4hWlNWIWcCPwyzaePwoYEv47GLg5/CoiIiLbUd/gzFv2Hi+/8xEj9tiJSUN3o6qLFT2uHCopFpHOajcRdvenzGzQdoYcC/zS3R141sx2NrPPuvu7cQUpIiKAO2xcl3QUEpN6d/7Pnc/x4qp1fLq5nh26VTFqzz784sxxVJl1eFwlxZwqXXeA6u4l3cWWLVuora1l48aNJd2PQI8ePRgwYABdu3aNND6Ok+X2BFYW3K8NH1MiLCISp1v/Ft55PukoJCZVwH9A0KTYI3zwXeCa4saVQyXFEqtdh8JF/1OyzdfW1tK7d28GDRqEpfUPhhRwd9asWUNtbS2DBw+O9JqynixnZuebWY2Z1bz//vvl3LWISPq9syjpCESy6YNlJd38xo0b6devn5LgEjMz+vXr16HKexyJ8CpgYMH9AeFj23D3me4+3t3H9++/zVJuIiKyPbvsk3QEEiMn6HbZ5l+R4yop5tTZZd+S70JJcHl09DjH0RoxB7jIzO4mOElunfqDRURKYMA4aNgClyxOOhKJQUODc+Ztf+aZ19cA0LNbFWMG7syd5xzc7OSzqOPKFfPf/eyPLFv9ceKxxGLhnTDnIviHB5KOJFXmzZvHtddey0MPPcScOXNYsmQJV1xxRatjP/zwQ2bPns2FF14IwDvvvMPFF1/MfffdV86Q2xRl+bRfA/OBoWZWa2bnmNnXzOxr4ZCHgTeA5cCtwIUli1ZEJM/cQVWlzKjqYtx5ztZFlm447cBWE8qo48qhqotx8eSgejpkt16JxhKLxveTp76mHYv6+voOv2batGltJsEQJMI///nPm+7vscceFZMEQ4RE2N1Pc/fPuntXdx/g7re5+y3ufkv4vLv71919H3cf5e66XJyISEk4kNKEQ1pVmEBOGb57mwll1HHl0CXc9z79eyUeS+c1xl5ZiXB9g/PEK6u5/onXeOKV1dQ3dD6+FStWMGzYME4//XSGDx/OSSedxIYNGxg0aBDf/OY3GTt2LPfeey+PPfYYhxxyCGPHjuUrX/kK69evB+D3v/89w4YNY+zYsdx///1N2501axYXXXQRAKtXr+b4449n9OjRjB49mmeeeYYrrriC119/nTFjxnDZZZexYsUKRo4cCQS902eddRajRo3iwAMP5Mknn2za5gknnMDUqVMZMmQIl19+eXBc6uuZPn06I0eOZNSoUVx33XWdPi6JXWJZREQ6SBVhkXhVYEW4PmyFWbTyw6Yl6uJqP1m2bBm33XYbEydO5Oyzz26q1Pbr14+FCxfywQcfcMIJJ/D444+z44478sMf/pCf/OQnXH755Zx33nnMnTuXfffdl1NOOaXV7V988cUcfvjhPPDAA9TX17N+/XquvvpqXnrpJRYtWgQECXmjm266CTPjxRdfZOnSpRx55JG8+uqrACxatIjnn3+e7t27M3ToUGbMmMF7773HqlWreOml4BpvH374YaeOBygRFhFJEVWEReJV/orw9377Mkve+ajN59du2Mzy99bTWATesLmeZ99Yw1E/e4q+Pbu1+pr999iJ7xwzot19Dxw4kIkTJwJwxhlncP311wM0JbbPPvssS5YsaRqzefNmDjnkEJYuXcrgwYMZMmRI02tnzpy5zfbnzp3LL38ZXH+tqqqKPn36sHbt2jbjefrpp5kxYwYAw4YNY++9925KhKdMmUKfPn2C72///XnrrbcYMWIEb7zxBjNmzODoo4/myCOPbPd7bk9Zl08TEZFOUEVYJF4VWBHesKmelp0QDR483lktV1RovL/jjjsCwTq8RxxxBIsWLWLRokUsWbKE2267rdP7LUb37lsvclJVVUVdXR19+/blhRdeYNKkSdxyyy2ce+65nd6P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\n",
      "text/plain": [
       "<Figure size 864x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# true outlier indices selection\n",
    "true_outlier = [df.anomaly for df in list_of_df]\n",
    "\n",
    "predicted_outlier[0].plot(figsize=(12, 3), label='predictions', marker='o', markersize=5)\n",
    "true_outlier[0].plot(marker='o', markersize=2)\n",
    "plt.legend();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsIAAADVCAYAAABdXpbTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAAAunklEQVR4nO3deZxU5ZX/8c/pBVBBUECNsqoEZBOx3WIyEIyIIS64jBLNBOPyMhGcjIbIxEx+xskvEiebW4xkiEwSlyQuCaMm+kuAcUzUgIgLKIoKCm6AgBCEprvP74+63VQ33V23um/VrXvr+369eFXVvU/d+9Stp7pOHc59rrk7IiIiIiLlpiLuDoiIiIiIxEGBsIiIiIiUJQXCIiIiIlKWFAiLiIiISFlSICwiIiIiZUmBsIiIiIiUpaq4dtynTx8fNGhQXLsXERERkTLxzDPPbHD3vi2XxxYIDxo0iCVLlsS1exEREREpE2a2prXlKo0QERERkbKUMxA2s5+b2ftm9mIb683MbjazVWb2vJmNjb6bIiIiIiLRClMaMQ+4FfhFG+tPBYYE/44Dbg9uRUREpB21dQ3cuuBVlqzZRM3A/Zg+YQhdqvbMUdU3OAteeo+HX3gHgMmjP8aEYQdSWWHF7nLoPoskgbl77kZmg4CH3H1kK+vuABa5+z3B45XAeHd/p71t1tTUuGqERUSkXNXWNXDM//1/bPmormlZz72qWHztyc0Cy/oG58L/fIqn3/iAhuAru8Lg+EN788uLjytqMBy2z+Vo165drF27lh07dsTdlbLWrVs3+vXrR3V1dbPlZvaMu9e0bB/FyXKHAG9lPV4bLGs3EBYRkTz9+EjYvBqOuQQm/6B4+920Bm4aDVYBNV8q7r5T7NYFrzYLKAG2fFTHrQte5aqJQ5uWLVr5Pkvf3NwUBAM0ODyzZhOLVr7PSUccWKwuh+5z3q7bD3A45uLij6/regLW6X2vXbuWHj16MGjQIMyKn6kXcHc2btzI2rVrGTx4cKjnFPXnm5ldZmZLzGzJ+vXri7lrEZHk27w6c7vkzuLu951lmVtvKP6+U2zJmk2tLn+mxfLlb3/IzrqGPdrtrGtgxdsfFqRvbQnb5/w1AB7j+Or8vnfs2EHv3r0VBMfIzOjdu3deWfkoAuF1QP+sx/2CZXtw9znuXuPuNX377jGVm4iIhFFzUUw7thj3nT41A/drdfnRLZaPOHhfurZSdtC1qoLhB+9bkL61JWyfO76DGMdXBPtWEBy/fN+DKALh+cA/BbNHHA9syVUfLCIinRBXacIRn1NZRISmTxhCz72aVyj23KuK6ROGNFs2fugBjB3Qq9myCssEn+OHHlDobjYzfcIQunetbLastT53WJzjS2O7mUWLFvG5z30OgPnz5zN79uw2227evJmf/OQnTY/ffvttzjnnnIL3MQphpk+7B3gSGGpma83sYjO73MwuD5o8ArwOrAJ+BnylYL0VERFJiS5VFSy+9uSmx1OP7d/qSWeVFcavLjmeA3p0AeDogb244wtHF/1EucY+33XJ8U2Pr5xwuE6US5j6+vq8n3P66acza9asNte3DIQPPvhg7rvvvg71r9hyjlx3n+ruH3P3anfv5+5z3f2n7v7TYL27+xXufpi7j3J3TQUhIiISQnYAecFxA9sMKCsrjO5dM2fBX3j8QE4eflAsU6cBVFfu7uNVE4cqCO6g+gbnzy+9x81/fpU/v/Qe9Q25Z/HKZfXq1QwbNowLLriAI444gnPOOYft27czaNAgrrnmGsaOHctvf/tbHnvsMU444QTGjh3Lueeey7Zt2wD44x//yLBhwxg7diwPPPBA03bnzZvH9OnTAXjvvfeYMmUKRx55JEceeSR//etfmTVrFq+99hpjxoxh5syZrF69mpEjMxON7dixg4suuohRo0Zx1FFHsXDhwqZtnnXWWUyaNIkhQ4bw9a9/PXNc6uuZNm0aI0eOZNSoUfzoRz/q9HFpT2yXWBYREZE8BHFvw57nzRWV0/mArdzVNzhfmPs0y97azEe19ezVpZIx/XtFkuVfuXIlc+fO5cQTT+RLX/pSU6a2d+/eLF26lA0bNnDWWWfxpz/9iX322Yfvfe97/PCHP+TrX/86l156KQsWLODwww/nvPPOa3X7V155JePGjePBBx+kvr6ebdu2MXv2bF588UWWLVsGZALyRrfddhtmxgsvvMDLL7/MxIkTeeWVVwBYtmwZzz77LF27dmXo0KHMmDGD999/n3Xr1vHii5nruG3evLlTxyMXBcIiIiIlINe0/o3hUUOI+f8LKebdJ8K3/3t5uzN6bNpey6r3tzVNibe9tp6nXt/IqTc9zn57d2n1OcMP3pf/c9qInPvu378/J554IgAXXnghN998M0BTYPvUU0+xYsWKpja1tbWccMIJvPzyywwePJghQ4Y0PXfOnDl7bH/BggX84heZa6xVVlbSs2dPNm1qe9aQJ554ghkzZgAwbNgwBg4c2BQIn3TSSfTs2TPz+oYPZ82aNYwYMYLXX3+dGTNmMHnyZCZOnJjzNXeG/j9DRESkBOTKtDaeDa9ANPm276ynZSVEg2eWd1bLWRMaH++zzz5AZq7dk08+mWXLlrFs2TJWrFjB3LlzO73fjujatWvT/crKSurq6thvv/147rnnGD9+PD/96U+55JJLCtoHZYRFRERKgDLC6ZErc/vnl95jxj3Psr12d+C7d5dKvn3GiE5fIOXNN9/kySef5IQTTuDuu+/mk5/8JM8++2zT+uOPP54rrriCVatWcfjhh/P3v/+ddevWMWzYMFavXs1rr73GYYcdxj333NPq9k866SRuv/12vvrVrzaVRvTo0YOtW7e22v5Tn/oUd911FxMmTOCVV17hzTffZOjQoSxdurTV9hs2bKBLly6cffbZDB06lAsvvLBTxyMXZYRFRERKQK74sjHRF8E5VZ2iGuHOGz/0AMb078XeXSoxMkHwmP69IpkOb+jQodx2220cccQRbNq0iS9/+cvN1vft25d58+YxdepURo8e3VQW0a1bN+bMmcPkyZMZO3YsBxzQel9uuukmFi5cyKhRozj66KNZsWIFvXv35sQTT2TkyJHMnDmzWfuvfOUrNDQ0MGrUKM477zzmzZvXLBPc0rp16xg/fjxjxozhwgsv5IYbbuj0MWmPMsIiIiIJUBFEwnFnhKXzKiuMX158HItWvs+Ktz9k+MH7Mn7oAZHMBFJVVcWvfvWrZsuyT14DmDBhAosXL97juZMmTeLll1/eY/m0adOYNm0aAAceeCC///3v92hz9913N3vceLJbt27duPPOPa/al71NgIceeqjpflvZ4kJQICwiIlICPGSAG7ZdoSgOj0ZlhXHSEQd2uhRCOkelESIiIiUgbHwZf2mElKpBgwY1ZWIlHAXCIiIiJSDnyXJNs0bEnRFWKCzpoUBYRESkJOSYPi24VUZYJDoKhEVEREpA7oxw5jbuk+WUEJY0USAsIiJSAsJOnxZ/IBp7B0Qio0BYRESkBOS+oEZpTJ8WfyAu+Zg2bRr33Xdf3N0I7bOf/SybN29ut828efN4++23I9mfAmEREZESkOsktNK5oIZI4TzyyCP06tWr3TYKhEVERFImZ2lEcKuMsLTnF7/4BaNHj+bII4/kC1/4AgCPP/44n/jEJzj00EObssPbtm3jpJNOYuzYsYwaNarpIhmrV6/miCOO4NJLL2XEiBFMnDiRjz76CIDFixczevRoxowZw8yZMxk5ciQA9fX1zJw5k2OOOYbRo0dzxx13ALBo0SL+4R/+gcmTJzN06FAuv/xyGhoaALjnnnsYNWoUI0eO5Jprrmnq/6BBg9iwYUOb/bjvvvtYsmQJF1xwAWPGjGnqW0cpEBYRESkBOQNMTZ8mOSxfvpzvfOc7LFiwgOeee46bbroJgHfeeYcnnniChx56iFmzZgGZK749+OCDLF26lIULF3L11Vc3vbevvvoqV1xxBcuXL6dXr17cf//9AFx00UXccccdLFu2jMrKyqb9zp07l549e7J48WIWL17Mz372M9544w0A/va3v3HLLbewYsUKXnvtNR544AHefvttrrnmGhYsWMCyZctYvHgxv/vd7/Z4Pa3145xzzqGmpoa77rqLZcuWsddee3XqmOnKciIiIiXANX1aevxhFrz7Qu52G1fBtneh+0HQ+/D22x40Ck6d3W6TBQsWcO6559KnTx8A9t9/fwDOPPNMKioqGD58OO+99x6Q+UHzjW98g8cff5yKigrWrVvXtG7w4MGMGTMGgKOPPprVq1ezefNmtm7dygknnADA5z//+abLIj/22GM8//zzTdnmLVu28Oqrr9KlSxeOPfZYDj30UACmTp3KE088QXV1NePHj6dv374AXHDBBTz++OOceeaZzV5Pa/2ImgJhERGRUqDp08rPtnd33+YKhDuha9euTfcbs7533XUX69ev55lnnqG6uppBgwaxY8eOPdpXVlbmLD9wd2655RZOOeWUZssXLVrUdCGYRi0fh+13mH50RKhA2MwmATcBlcB/uvvsFusHAP8F9ArazHL3R6LtqoiISHol5xLLioRzypG5bfLw1bDkTqi5CCb/oNO7nTBhAlOmTOGqq66id+/efPDBB2223bJlCwcccADV1dUsXLiQNWvWtLvtXr160aNHD55++mmOO+447r333qZ1p5xyCrfffjsTJkygurqaV155hUMOOQTIlEa88cYbDBw4kF//+tdcdtllHHvssVx55ZVs2LCB/fbbj3vuuYcZM2aEfp09evRg69atodu3J2cgbGaV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\n",
      "text/plain": [
       "<Figure size 864x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# true changepoint indices selection\n",
    "true_cp = [df.changepoint for df in list_of_df]\n",
    "\n",
    "predicted_cp[0].plot(figsize=(12, 3), label='predictions', marker='o', markersize=5)\n",
    "true_cp[0].plot(marker='o', markersize=2)\n",
    "plt.legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Metrics calculation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "False Alarm Rate 7.56 %\n",
      "Missing Alarm Rate 66.57 %\n",
      "F1 metric 0.45\n"
     ]
    }
   ],
   "source": [
    "# binary classification metrics calculation\n",
    "binary = evaluating_change_point(true_outlier, predicted_outlier, metric='binary', numenta_time='30 sec')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Average delay 0 days 00:00:06.394736842\n",
      "A number of missed CPs = 92\n"
     ]
    }
   ],
   "source": [
    "# average detection delay metric calculation\n",
    "add = evaluating_change_point(true_cp, predicted_cp, metric='average_delay', numenta_time='30 sec')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Intersection of the windows of too wide widths for dataset 16\n",
      "Intersection of the windows of too wide widths for dataset 16\n",
      "Intersection of the windows of too wide widths for dataset 16\n",
      "Intersection of the windows of too wide widths for dataset 18\n",
      "Intersection of the windows of too wide widths for dataset 18\n",
      "Intersection of the windows of too wide widths for dataset 18\n",
      "Intersection of the windows of too wide widths for dataset 19\n",
      "Intersection of the windows of too wide widths for dataset 19\n",
      "Intersection of the windows of too wide widths for dataset 19\n",
      "Intersection of the windows of too wide widths for dataset 23\n",
      "Intersection of the windows of too wide widths for dataset 23\n",
      "Intersection of the windows of too wide widths for dataset 23\n",
      "Intersection of the windows of too wide widths for dataset 23\n",
      "Intersection of the windows of too wide widths for dataset 23\n",
      "Intersection of the windows of too wide widths for dataset 23\n",
      "Intersection of the windows of too wide widths for dataset 27\n",
      "Intersection of the windows of too wide widths for dataset 27\n",
      "Intersection of the windows of too wide widths for dataset 27\n",
      "Intersection of the windows of too wide widths for dataset 32\n",
      "Intersection of the windows of too wide widths for dataset 32\n",
      "Intersection of the windows of too wide widths for dataset 32\n",
      "Standart  -  15.59\n",
      "LowFP  -  0.78\n",
      "LowFN  -  20.91\n"
     ]
    }
   ],
   "source": [
    "# nab metric calculation\n",
    "nab = evaluating_change_point(true_cp, predicted_cp, metric='nab', numenta_time='30 sec')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## [Additional] localization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
